PLAT-2003/ci: relock uv.lock on version bump - #48
Merged
Conversation
bumpver rewrites the version in pyproject.toml but not in uv.lock, so every release desynced the two. With the uv-lock pre-commit hook now in place that surfaces as a red pre-commit on the next PR. Add the pre_commit_hook the other repos already use, so the bump commit carries the regenerated lock. `--no-upgrade` is deliberate: it reconciles the lock to pyproject without pulling newer versions of anything else. A bare `uv lock` here would sweep in every deferred dependabot upgrade at bump time, which is how ratatosk ended up with pydantic 2.13.4 (PLAT-2000).
☂️ Code Coverage
Overall Coverage
New FilesNo new covered files... Modified FilesNo covered modified files...
|
Puvendhan
approved these changes
Jul 30, 2026
Puvendhan
left a comment
There was a problem hiding this comment.
PLAT-2003 round 2. Verified config-only: no dependency-version upgrades (checked the uv.lock diffs — only each repo's own project version relocks + payload-encryption's keyring cleanup). Approving.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
bumpverrewrites the version inpyproject.tomlbut not inuv.lock, so every release quietly desynced the two. That went unnoticed because nothing checked — until theuv-lockpre-commit hook landed (PLAT-2003), which now catches it as a redpre-commiton the next PR.Six repos had already drifted this way; ratatosk's lock was three releases behind its pyproject. The repos that never drifted all turned out to have one thing in common: a
pre_commit_hookon[tool.bumpver]that regenerates the lock as part of the bump commit. Correlation was exact — 10/10 repos with the hook in sync, 6/6 without it drifted.Changes
bin/bumpver-hook.sh(mode100755) and wire it up aspre_commit_hookin[tool.bumpver], so the bump commit carries the regenerated lock:Scope / Non-goals
--no-upgradeis deliberate and load-bearing. It reconciles the lock topyproject.tomlwithout pulling newer versions of anything else. A bareuv lockhere would re-resolve everything and sweep in every dependency upgrade dependabot had written into pyproject but never locked — which is precisely how ratatosk picked up pydantic 2.13.4 and lost staging for a week (PLAT-2000).Validation
bin/bumpver-hook.shalready in use in auth-gateway, buyer-portal-service, card-issuing, checkout-api, fastapi-app-template, merchant-onboarding-service, njord-bank, orders and risk-engine.100755exec bit is preserved.Ticket
🤖 Generated with Claude Code
https://claude.ai/code/session_017VDJqb1XWoNNxZEfGQ8meH